The JUL2GREG procedure calculates the Gregorian month, day, year (and optional hour, minute, second) from a Julian Date. This is the inverse of the GREG2JUL function.
Notes
jul2greg.pro in the lib subdirectory of the IDL distribution.Unlike the Julian calendar, in the proleptic Gregorian calendar the year 1500 is not a leap year:
JUL2GREG, 2268982, Month1, Day1, Year1
JUL2GREG, 2268983, Month2, Day2, Year2
PRINT, Month1, Day1, Year1
PRINT, Month2, Day2, Year2
IDL prints:
2 28 1500
3 1 1500
Be sure to distinguish between Month and Minute when assigning variable names. For example, the following code would cause the Month value to be the same as the Minute value:
;Find date corresponding to Julian day 2529161.36:
JUL2GREG, 2492637.36, M, D, Y, H, M, S
PRINT, M, D, Y, H, M, S
IDL prints:
0 4 2112 18 0 0.00000000
Moreover, Julian Day Numbers should be maintained as double-precision floating-point data when the numbers are used to determine hours, minutes, and seconds.
So, instead of the previous call, use a "D" following the number to ensure that it is double precision:
JUL2GREG, 2492637.36D, Month, Day, Year, Hour, Minute, Second
PRINT, Month, Day, Year, Hour, Minute, Second
IDL prints:
7 4 2112 20 38 23.999989
You can also use arrays for the Julian argument:
JUL2GREG, DINDGEN(4) + 2449587.0D, m, d, y
PRINT, m, d, y
IDL prints:
8 8 8 8
22 23 24 25
1994 1994 1994 1994
JUL2GREG, Julian, Month [, Day [, Year [, Hour [, Minute [, Second]]]]]
A numeric value or array that specifies the Julian Date (which begins at noon) to be converted to a calendar date.
Note: Julian Dates should be maintained as double-precision floating-point data when the numbers are used to determine hours, minutes, and seconds.
A named variable that, on output, contains a longword integer or longword integer array representing the number of the month (1 = January, ..., 12 = December).
A named variable that, on output, contains a longword integer or longword integer array representing the number of the day of the month (1-31).
A named variable that, on output, contains a longword integer or longword integer array representing the number of the year (e.g., 1994).
A named variable that, on output, contains a longword integer or longword integer array representing the number of the hour of the day (0-23).
A named variable that, on output, contains a longword integer or longword integer array representing the number of the minute of the hour (0-59).
A named variable that, on output, contains a double-precision floating-point value or a double-precision floating-point array representing the number of the second of the minute (0-59).
None.
|
8.2.1 |
Introduced |